package com.ruoyi.his.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.his.mapper.HisPatientMapper;
import com.ruoyi.his.domain.HisPatient;
import com.ruoyi.his.service.IHisPatientService;

/**
 * 患者Service业务层处理
 *
 * @date 2025-03-13
 */
@Service
public class HisPatientServiceImpl implements IHisPatientService
{
    @Autowired
    private HisPatientMapper hisPatientMapper;

    /**
     * 查询患者
     *
     * @param patientId 患者主键
     * @return 患者
     */
    @Override
    public HisPatient selectHisPatientByPatientId(Long patientId)
    {
        return hisPatientMapper.selectHisPatientByPatientId(patientId);
    }

    /**
     * 查询患者列表
     *
     * @param hisPatient 患者
     * @return 患者
     */
    @Override
    public List<HisPatient> selectHisPatientList(HisPatient hisPatient)
    {
        return hisPatientMapper.selectHisPatientList(hisPatient);
    }

    /**
     * 新增患者
     *
     * @param hisPatient 患者
     * @return 结果
     */
    @Override
    public int insertHisPatient(HisPatient hisPatient)
    {
        //获取当前登录用户
        String username = SecurityUtils.getUsername();
        hisPatient.setPatienUsername(username);
        hisPatient.setCreateTime(DateUtils.getNowDate());
        return hisPatientMapper.insertHisPatient(hisPatient);
    }

    /**
     * 修改患者
     *
     * @param hisPatient 患者
     * @return 结果
     */
    @Override
    public int updateHisPatient(HisPatient hisPatient)
    {
        hisPatient.setUpdateTime(DateUtils.getNowDate());
        return hisPatientMapper.updateHisPatient(hisPatient);
    }

    /**
     * 批量删除患者
     *
     * @param patientIds 需要删除的患者主键
     * @return 结果
     */
    @Override
    public int deleteHisPatientByPatientIds(Long[] patientIds)
    {
        return hisPatientMapper.deleteHisPatientByPatientIds(patientIds);
    }

    /**
     * 删除患者信息
     *
     * @param patientId 患者主键
     * @return 结果
     */
    @Override
    public int deleteHisPatientByPatientId(Long patientId)
    {
        return hisPatientMapper.deleteHisPatientByPatientId(patientId);
    }
    /**
     * 查询患者
     *
     * @param idCard 身份证
     * @return 患者
     */
    @Override
    public HisPatient selectHisPatientByIdCard(String idCard){
        return hisPatientMapper.selectHisPatientByIdCard(idCard);
    }

}
